草庐IT

MySQL ODBC 32 与 64 位

全部标签

c# - 是否可以确定 Environment.SpecialFolder.System 驱动器的 Win32_DiskDrive SerialNumber?

我一直在兜圈子,似乎也无法在谷歌上找到答案。正如标题所说,如果我得到当前正在运行的驱动器盘符,让我们这样说:Path.GetPathRoot(Environment.GetFolderPath(Environment.SpecialFolder.System));然后我可以确定它的Win32_DiskDriveSerialNumber吗?我找不到链接它们的方法。这是制造商的S/N,不是VolumeSerialNumber。提前致谢 最佳答案 您可以使用ManagmentObjectSearch结合ASSOCIATORSOF声明:pu

c++ - 如何使 StackWalk64() 在 x64 上成功运行?

我有一个C++工具可以一次遍历调用堆栈。在代码中,它首先获取实时CPU寄存器的拷贝(通过RtlCaptureContext()),然后使用一些“#ifdef...”block将特定于CPU的寄存器名称保存到stackframe.AddrPC.Offset,...AddrStack...,and...AddrFrame...;此外,对于上面的3个Addr...成员中的每一个,它都设置了stackframe.Addr....Mode=AddrModeFlat。(这是从我前一段时间遇到的一些示例代码中借用的。)使用x86二进制文件,效果很好。但是,对于x64二进制文件,StackWalk64

windows - 在 32 位 Windows 上,一个程序如何具有高虚拟字节数而私有(private)字节数相对较低?

我试图更好地了解32位Windows如何计算程序的虚拟字节。我的印象是,虚拟字节(VB)是对使用了多少用户地址空间的度量,而私有(private)字节(PB)是对系统上实际提交和保留内存的度量。特别是,我有一个我正在监视的服务器程序,当它在大量使用时,它会爬升到VB的3GB限制。大约在同一时间,PB也攀升,但随后随着使用量下降而迅速下降至1GB左右。然后,PB倾向于保持在1GB左右的低位,但VB保持在3GB左右。我无权访问源代码,所以我只是使用基本的Windows性能计数器来监视所有这些。从编程的角度来看,我不明白什么内存概念使这一切成为可能?是否有很好的引用来了解更多相关信息?

windows - SHGetSpecialFolderPath,如何从 32 位应用程序访问 64 位 CSIDL

有没有办法让在64位系统上运行的32位应用程序访问64位应用程序的默认文件夹?例如,在32位应用程序中将SHGetSpecialFolderPath与CSIDL_PROGRAM_FILES结合使用会返回“C:\从32位应用程序获取“C:\ProgramFiles”的方法?这里的一个相关问题没有帮助SHGetFolderPath()32bitvs64bit在调用SHGetSpecialFolderPath之前也不会抑制wow64文件系统重定向 最佳答案 回答我自己的问题,SHGetSpecialFolderPath似乎是不可能的。在V

java - win32 从 C++ 代码中读取 Java 首选项

我们的一个程序在Java首选项中写入程序信息(窗口标题、内存等)。在Windows上,这在注册表下可用。如何使用c(或c++)读取Java程序编写的值。看起来我应该使用的API是RegGetValue。这是否保证可以在WindowsXP32位上运行?java写的String是UTF-8编码的。我如何在windows(win32或vc++)中读取这样的字符串干杯,贾安 最佳答案 我对此进行了深入研究。RegGetValue()是一个新的注册表调用,它处理传统查询注册表(RegQueryValueEx)方式的一些潜在问题。这里有一些关于

c++ - 如何查找任意进程是否在 wow64 下运行?

我需要一个工具来发现任意进程是在机器上以x86还是x64模式运行。我需要根据进程ID从C++以编程方式执行此操作。必须有某种方法可以做到这一点(正如您可以从任务管理器中清楚地看到的那样)。有谁知道WindowsAPI会告诉您给定进程ID,应用程序是否在wow64下运行?另一种方法是根据进程ID找出正在运行的可执行文件名称/路径,并尝试从文件中读取PEheader。有没有人有可以实现这一目标的代码片段? 最佳答案 有一个WinAPI函数,IsWow64Process. 关于c++-如何查找

windows - 获取 Windows 架构(32/64 位版本)

我遇到了一个小问题:我想了解操作系统的架构,问题是我的编程语言不支持此类功能。因此,我需要从Windowsdll(如kernel32.dll)中读取此信息我确实尝试使用函数GetNativeSystemInfo/GetVersionEx/GetSystemInfo获取信息。不幸的是我无法获得架构:/在任何windowsdll中是否有一些其他的函数来读取架构?(它不需要是kernel32它可以是任何dll但它必须存在于winxp+中)作为信息:我正在使用Gupta(SQLWindows/Teamdevoloper)编辑1:typedefstruct_SYSTEM_INFO{union{D

windows - 为 Win32 编译 OpenSSL 时出错

尝试在Win32上构建OpenSSL时出现以下错误:C:\ProgramFiles(x86)\MicrosoftVisualStudio10.0\VC\INCLUDE\errno.h(92):errorC2220:warningtreatedaserror-no'object'filegeneratedC:\ProgramFiles(x86)\MicrosoftVisualStudio10.0\VC\INCLUDE\errno.h(92):warningC4005:'EADDRINUSE':macroredefinitiontmp32\e_os.h(153):seepreviousde

c++ - 移至 64 位操作系统时共享内存性能降低

我遇到了在64位Windows上运行的32位旧版应用程序的问题。有问题的应用程序使用CreateFileMapping创建共享内存。当它在64位Windows上运行时,任何从另一个进程访问此共享内存的尝试都需要大约1秒。共享内存是使用页面保护标志创建的:flProtect=PAGE_READONLY|SEC_NOCACHE|SEC_COMMIT;当使用以下方法创建相同的内存时:flProtect=PAGE_READONLY|SEC_COMMIT;问题消失了。目前这种解决方法是可以接受的,但我们确实有一些设备需要设置SEC_NOCACHE标志。谁能告诉我为什么在这种情况下SEC_NOCA

windows - win32 : destroy a deskstop created with CreateDesktop

CreateDesktop()的反义词是什么?CloseDesktop()似乎只是关闭新桌面的句柄,而不是删除它。 最佳答案 IIRC,桌面是引用计数的,所以当没有人再使用它们时它们就会被销毁(并且有一个未关闭的句柄包含在“正在使用”中)。 关于windows-win32:destroyadeskstopcreatedwithCreateDesktop,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/